#pragma once
#include <string>
#include "task.h"

class TaskGroup
{
private:
  std::string group_name;
  Task *root;
  Task *current;

public:
  TaskGroup(std::string);
  Task *get_current();
  void set_current(Task *);
  Task *get_root();
  std::string get_group_name();
  void set_group_name(std::string);
  void append(std::string);
  void add_to_child_first(std::string);
  void insert(std::string);
  void move_to_next();
  void move_to_prev();
  void move_to_parent();
  void print_group(Task *, unsigned int);
  void delete_current_and_move();
  void free_tasks_memory(Task *);
};